草庐IT

leetcode 2744

全部标签

两两交换链表中的节点-LeetCode24模拟节点

力扣链接:https://leetcode.cn/problems/swap-nodes-in-pairs/题目给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。示例1:      输入:head=[1,2,3,4]输出:[2,1,4,3]示例2:输入:head=[]输出:[]示例3:输入:head=[1]输出:[1]当拿到这个题目,我相信很多人跟我一样,比较蒙蔽了,这怎么交换啊?这个题目需要去模拟,待我一一来分析。思路  建议使用虚拟头结点,这样会方便很多,要不然每次针对头结点(没有前一个指针指向头结点),还要

两两交换链表中的节点-LeetCode24模拟节点

力扣链接:https://leetcode.cn/problems/swap-nodes-in-pairs/题目给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。示例1:      输入:head=[1,2,3,4]输出:[2,1,4,3]示例2:输入:head=[]输出:[]示例3:输入:head=[1]输出:[1]当拿到这个题目,我相信很多人跟我一样,比较蒙蔽了,这怎么交换啊?这个题目需要去模拟,待我一一来分析。思路  建议使用虚拟头结点,这样会方便很多,要不然每次针对头结点(没有前一个指针指向头结点),还要

leetcode 241. Different Ways to Add Parentheses 为运算表达式设计优先级(中等)

一、题目大意标签:分治https://leetcode.cn/problems/different-ways-to-add-parentheses给你一个由数字和运算符组成的字符串 expression,按不同优先级组合数字和运算符,计算并返回所有可能组合的结果。你可以按任意顺序返回答案。生成的测试用例满足其对应输出值符合32位整数范围,不同结果的数量不超过104。示例1:输入:expression="2-1-1"输出:[0,2]解释:((2-1)-1)=0(2-(1-1))=2示例2:输入:expression="23-45"输出:[-34,-14,-10,-10,10]解释:(2(3-(4

leetcode 53. Maximum Subarray 最大子数组和(中等)

一、题目大意标签:动态规划https://leetcode.cn/problems/maximum-subarray给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。示例1:输入:nums=[-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1]的和最大,为 6。示例2:输入:nums=[1]输出:1示例3:输入:nums=[5,4,-1,7,8]输出:23提示:1-104进阶:如果你已经实现复杂度为O(n)的解法,尝试使用更为精妙的分治法求解。二、解题思路定义一个max保存遍

leetcode 650. 2 Keys Keyboard 只有两个键的键盘(中等)

一、题目大意标签:动态规划https://leetcode.cn/problems/2-keys-keyboard最初记事本上只有一个字符'A'。你每次可以对这个记事本进行两种操作:CopyAll(复制全部):复制这个记事本中的所有字符(不允许仅复制部分字符)。Paste(粘贴):粘贴上一次复制的字符。给你一个数字 n,你需要使用最少的操作次数,在记事本上输出恰好 n 个'A'。返回能够打印出 n 个'A'的最少操作次数。示例1:输入:3输出:3解释:最初,只有一个字符'A'。第1步,使用CopyAll操作。第2步,使用Paste操作来获得'AA'。第3步,使用Paste操作来获得'AAA'。

leetcode 241. Different Ways to Add Parentheses 为运算表达式设计优先级(中等)

一、题目大意标签:分治https://leetcode.cn/problems/different-ways-to-add-parentheses给你一个由数字和运算符组成的字符串 expression,按不同优先级组合数字和运算符,计算并返回所有可能组合的结果。你可以按任意顺序返回答案。生成的测试用例满足其对应输出值符合32位整数范围,不同结果的数量不超过104。示例1:输入:expression="2-1-1"输出:[0,2]解释:((2-1)-1)=0(2-(1-1))=2示例2:输入:expression="23-45"输出:[-34,-14,-10,-10,10]解释:(2(3-(4

leetcode 53. Maximum Subarray 最大子数组和(中等)

一、题目大意标签:动态规划https://leetcode.cn/problems/maximum-subarray给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。示例1:输入:nums=[-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1]的和最大,为 6。示例2:输入:nums=[1]输出:1示例3:输入:nums=[5,4,-1,7,8]输出:23提示:1-104进阶:如果你已经实现复杂度为O(n)的解法,尝试使用更为精妙的分治法求解。二、解题思路定义一个max保存遍

leetcode 650. 2 Keys Keyboard 只有两个键的键盘(中等)

一、题目大意标签:动态规划https://leetcode.cn/problems/2-keys-keyboard最初记事本上只有一个字符'A'。你每次可以对这个记事本进行两种操作:CopyAll(复制全部):复制这个记事本中的所有字符(不允许仅复制部分字符)。Paste(粘贴):粘贴上一次复制的字符。给你一个数字 n,你需要使用最少的操作次数,在记事本上输出恰好 n 个'A'。返回能够打印出 n 个'A'的最少操作次数。示例1:输入:3输出:3解释:最初,只有一个字符'A'。第1步,使用CopyAll操作。第2步,使用Paste操作来获得'AA'。第3步,使用Paste操作来获得'AAA'。

LeetCode 39. 组合总和 40.组合总和II 131.分割回文串

欢迎关注个人公众号:爱喝可可牛奶LeetCode39.组合总和40.组合总和II131.分割回文串LeetCode39.组合总和分析回溯可看成对二叉树节点进行组合枚举,分为横向和纵向每次往sum添加新元素时,必须明确从can哪个位置开始,定义变量pos返回条件sum==target或sum>target;横向结束条件没有新元素可以添加了即posbt(can,sum,tar,pos){ if(sum==tar)addreturn;if(sum>tar)pos++return;for(inti=pos;i这个回溯考虑sum>tar时,pos++不应该写在第3行,这样导致回溯减掉的元素值与递归添加的

LeetCode 39. 组合总和 40.组合总和II 131.分割回文串

欢迎关注个人公众号:爱喝可可牛奶LeetCode39.组合总和40.组合总和II131.分割回文串LeetCode39.组合总和分析回溯可看成对二叉树节点进行组合枚举,分为横向和纵向每次往sum添加新元素时,必须明确从can哪个位置开始,定义变量pos返回条件sum==target或sum>target;横向结束条件没有新元素可以添加了即posbt(can,sum,tar,pos){ if(sum==tar)addreturn;if(sum>tar)pos++return;for(inti=pos;i这个回溯考虑sum>tar时,pos++不应该写在第3行,这样导致回溯减掉的元素值与递归添加的